﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	///<summary>
	///(Регл)
	///</summary>
	[DataContract]
	public enum СпособыПоступленияАктивов
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"85fc9c9c-6385-4f1b-9744-bf4743dd5198\", \"Представление\":\"ПриобретениеЗаПлату\"}")]
		ПриобретениеЗаПлату = 0,//Приобретение за плату
		[EnumMember(Value = "{\"Ссылка\":\"2c8dced4-976f-4746-a836-a08e60df97e5\", \"Представление\":\"ВкладВУставныйКапитал\"}")]
		ВкладВУставныйКапитал = 1,//Вклад в уставный (складочный) капитал
		[EnumMember(Value = "{\"Ссылка\":\"27075a33-558a-47b7-b1d8-b30f685c78d4\", \"Представление\":\"ВОбменНаДругоеИмущество\"}")]
		ВОбменНаДругоеИмущество = 2,//В обмен на другое имущество
		[EnumMember(Value = "{\"Ссылка\":\"124828a1-f960-419b-bad0-f70750f836df\", \"Представление\":\"БезвозмездноеПоступление\"}")]
		БезвозмездноеПоступление = 3,//Безвозмездное поступление
		[EnumMember(Value = "{\"Ссылка\":\"184c51cc-7692-4042-ac4e-4bb0b3b736dc\", \"Представление\":\"ПоДоговоруАренды\"}")]
		ПоДоговоруАренды = 4,//По договору аренды (лизинга)
		[EnumMember(Value = "{\"Ссылка\":\"3ed59179-f7d8-4ab9-8135-9564588d009d\", \"Представление\":\"ПоступлениеВДоверительноеУправление\"}")]
		ПоступлениеВДоверительноеУправление = 5,//Поступление в доверительное управление
		[EnumMember(Value = "{\"Ссылка\":\"8d95ba58-20fe-463c-9813-3f809dccc6b3\", \"Представление\":\"ВкладВСовместнуюДеятельность\"}")]
		ВкладВСовместнуюДеятельность = 6,//Вклад в совместную деятельность
	}
	public static partial class СпособыПоступленияАктивов_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid ПриобретениеЗаПлату = new Guid("47bf4497-dd43-9851-4f1b-638585fc9c9c");//Приобретение за плату
		public static readonly Guid ВкладВУставныйКапитал = new Guid("8ea036a8-df60-e597-4746-976f2c8dced4");//Вклад в уставный (складочный) капитал
		public static readonly Guid ВОбменНаДругоеИмущество = new Guid("0fb3d8b1-5c68-d478-47b7-558a27075a33");//В обмен на другое имущество
		public static readonly Guid БезвозмездноеПоступление = new Guid("07f7d0ba-f850-df36-419b-f960124828a1");//Безвозмездное поступление
		public static readonly Guid ПоДоговоруАренды = new Guid("b04b4eac-b7b3-dc36-4042-7692184c51cc");//По договору аренды (лизинга)
		public static readonly Guid ПоступлениеВДоверительноеУправление = new Guid("64953581-8d58-9d00-4ab9-f7d83ed59179");//Поступление в доверительное управление
		public static readonly Guid ВкладВСовместнуюДеятельность = new Guid("803f1398-cc9d-b3c6-463c-20fe8d95ba58");//Вклад в совместную деятельность
		public static СпособыПоступленияАктивов Получить(this СпособыПоступленияАктивов Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static СпособыПоступленияАктивов Получить(this СпособыПоступленияАктивов Значение, Guid Ссылка)
		{
			if(Ссылка == ПриобретениеЗаПлату)
			{
				return СпособыПоступленияАктивов.ПриобретениеЗаПлату;
			}
			else if(Ссылка == ВкладВУставныйКапитал)
			{
				return СпособыПоступленияАктивов.ВкладВУставныйКапитал;
			}
			else if(Ссылка == ВОбменНаДругоеИмущество)
			{
				return СпособыПоступленияАктивов.ВОбменНаДругоеИмущество;
			}
			else if(Ссылка == БезвозмездноеПоступление)
			{
				return СпособыПоступленияАктивов.БезвозмездноеПоступление;
			}
			else if(Ссылка == ПоДоговоруАренды)
			{
				return СпособыПоступленияАктивов.ПоДоговоруАренды;
			}
			else if(Ссылка == ПоступлениеВДоверительноеУправление)
			{
				return СпособыПоступленияАктивов.ПоступлениеВДоверительноеУправление;
			}
			else if(Ссылка == ВкладВСовместнуюДеятельность)
			{
				return СпособыПоступленияАктивов.ВкладВСовместнуюДеятельность;
			}
			return СпособыПоступленияАктивов.ПустаяСсылка;
		}
		public static byte[] Ключ(this СпособыПоступленияАктивов Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this СпособыПоступленияАктивов Значение)
		{
			switch (Значение)
			{
				case СпособыПоступленияАктивов.ПриобретениеЗаПлату: return ПриобретениеЗаПлату;
				case СпособыПоступленияАктивов.ВкладВУставныйКапитал: return ВкладВУставныйКапитал;
				case СпособыПоступленияАктивов.ВОбменНаДругоеИмущество: return ВОбменНаДругоеИмущество;
				case СпособыПоступленияАктивов.БезвозмездноеПоступление: return БезвозмездноеПоступление;
				case СпособыПоступленияАктивов.ПоДоговоруАренды: return ПоДоговоруАренды;
				case СпособыПоступленияАктивов.ПоступлениеВДоверительноеУправление: return ПоступлениеВДоверительноеУправление;
				case СпособыПоступленияАктивов.ВкладВСовместнуюДеятельность: return ВкладВСовместнуюДеятельность;
			}
			return Guid.Empty;
		}
	}
}